import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/login.vue'
import Home from '../views/HomeView.vue'
import Welcome from '../components/welcome.vue'
import Users from '../components/user/users.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    redirect: '/login',
  },
  {
    path: '/login',
    component: Login
  },
  {
    path:'/home',
    component:Home,
    redirect:'/welcome',  //重定向到welcome页面
    children:[
      {path:'/welcome',component:Welcome},
      {path:'/users',component:Users}
    ]

  }
]

const router = new VueRouter({
  routes
})

//挂载路由导航守卫
//beforeEach在每一个路由发送之前去进行拦截
//to  表示这个路由要去哪，将要访问的路径
//from   这个路由从哪来，从哪个路径跳转而来
//next  对路由进行控制   next()直接放行   next(路径) 强制将路由跳转到该路径
router.beforeEach((to,from,next)=>{
  //登录请求  本身就是要登录,直接放行
  if(to.path === '/login') return next();

  //如果没有登录，任何除了登录外的请求，全部强制甩到登录去
  //去项目的会话存储中拿一下登录令牌
  const tocken = window.sessionStorage.getItem('tocken')
  //如果没有令牌，全部强制跳到登录去
  if(!tocken) return next('/login')
  next();   //符合令牌的请求，正常放行

})

export default router

